<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>2-构造函数原型-（原型对象）</title>
	</head>
	<body>
		<script type="text/javascript">
			/**
			 * 定义构造函数
			 * @param {Object} brand
			 * @param {Object} price
			 */
			function Mobile(brand,price){
				this.brand = brand;
				this.price = price;
				// this.sendmsg = function(){
				// 	console.log('发短信...');
				// }
			}
			/**
			 * 构造函数身上携带prototype属性，它呢本身也是一个对象，在它上面定义属性和方法
			 * 都会被构造函数所拥有
			 */
			//根据以上解释，所以我门解决构造函数中出现的问题，如下解决方式
			Mobile.prototype.sendmsg = function(){
				console.log('发短信');
			}
			var hw = new Mobile('华为p30',299);
			var al = new Mobile('苹果13',199);
			console.dir(Mobile);
			
			hw.sendmsg();//发短信
			
			//无法理解的问题：我这个sendmsg在原型对象属性prototype上定义，但是为什么
			//我实例化的对象hw能够调用呢？
			
			
			
		</script>
	</body>
</html>